Varying map information density based on the speed of the vehicle

ABSTRACT

To dynamically vary map content based on the speed at which a portable device is moving, for a map in which a portable device user is following, a request for map data for a particular location is received along with an indication of the speed of the portable device. As a result, at least two versions of map data for the particular location are identified and one of the versions is selected based on the speed. The selected version is then transmitted to the portable device for display.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of and claims priority to U.S.application Ser. No. 14/208,083, filed on Mar. 13, 2014, entitled“Varying Map Information Density Based on the Speed of the Vehicle,” theentire disclosure of which is hereby expressly incorporated by referenceherein.

FIELD OF THE DISCLOSURE

The present disclosure relates to digital mapping data and, moreparticularly, to dynamically varying map content depending on the speedof a portable device.

BACKGROUND

The background description provided herein is for the purpose ofgenerally presenting the context of the disclosure. Work of thepresently named inventors, to the extent it is described in thisbackground section, as well as aspects of the description that may nototherwise qualify as prior art at the time of filing, are neitherexpressly nor impliedly admitted as prior art against the presentdisclosure.

Today, many users request map data for display while travelling. As aresult, software applications receive map data on the fly as the usermakes progress along the route.

SUMMARY

To effectively provide map data to a user, a mapping system implementedin a portable device and/or the head unit of a vehicle dynamicallyvaries map content depending on the speed of the portable device. Aserver is configured to generate multiple different versions of map dataso that, for example, one version contains map data represented with acertain level of detail or a certain set of visual styles, while anotherversion contains the same map data represented with another level ofdetail or another set of visual styles. The server then selects one ofthese versions based on the speed at which the portable device ismoving. In this manner, the system can make the map less cluttered whenthe user is not likely to be interested in some details. Moreover, thistechnique can improve safety during driving.

In particular, an example embodiment of the techniques of the presentdisclosure is a computing device including a communication interface andprocessing hardware coupled to the communication interface. Theprocessing hardware is configured to: receive a map data request via thecommunication interface, and parse the map data request to determine aspeed comprised in the map data request. The processing hardware isfurther configured to determine a location responsive to the map datarequest, identify at least two versions of map data corresponding to thelocation, and select, based on the speed, one of the at least twoversions of the map data corresponding to the location. The processinghardware is then configured to respond to the map data request with theselected one of the at least two versions of the map data.

Another embodiment of these techniques is a portable computing deviceincluding one or more sensors configured to determine a speed of theportable device, a communication interface, and processing hardwarecoupled to the communication interface. The processing hardware isconfigured to: generate a map data request for a geographic area,determine a first speed of the portable device, and display a firstversion of map data corresponding to the geographic area based on thefirst speed. The processing hardware is further configured to determinea second speed of the portable device, and display a second version ofthe map data corresponding to the same geographic area based on thesecond speed.

Yet another embodiment of these techniques is a method for dynamicallyvarying map content based on the speed of a portable device. The methodincludes receiving, at one or more computing devices, a map data requestfor a geographic area, and parsing, by the one or more computingdevices, the map data request to determine a speed comprised in the mapdata request. The method further includes identifying, by the one ormore computing devices, at least two versions of map data correspondingto the geographic area, and selecting, by the one or more computingdevices, based on the speed, one of the at least two versions of the mapdata corresponding to the geographic area. Still further, the methodincludes responding, by the one or more computing devices, to the mapdata request with the selected one of the at least two versions of themap data.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an example vehicle in which the techniques of thepresent disclosure can be used to generate dynamic map content;

FIG. 2 is a block diagram of an example portable device that can operatein the system of FIG. 1;

FIG. 3A is a block diagram of an example communication system in whichthe portable device of FIG. 2 can operate;

FIG. 3B is a block diagram of a component of the system of FIG. 3A forgenerating dynamic map content;

FIG. 4A is an exemplary display of map content for a geographic area ata first level of detail;

FIG. 4B is an exemplary display of map content for the same geographicarea as in FIG. 4A at a second level of detail;

FIG. 5 is a flow diagram of an example method for generating dynamic mapcontent at the map data server; and

FIG. 6 is a flow diagram of an example method for displaying dynamic mapcontent at the client device.

DETAILED DESCRIPTION

Generally speaking, the techniques for dynamically varying map contentcan be implemented in a portable device, a head unit of a car, one orseveral network servers, or a system that includes a combination ofthese devices. However, for clarity, the examples below focus primarilyon an embodiment in which a mapping application executes on a portableuser device, generates map content using a map version engine in one orseveral network servers, and displays the map content on the portabledevice.

In one implementation, the portable device generates a request for mapdata for a particular geographic area, and a map version engine receivesthe request along with an indication of the speed of the portabledevice. The map version engine generates several versions of map datafor the particular geographic area and sends one of the versions of themap data to the portable device based on the speed at which the portabledevice is moving. In some implementations, as the speed increases themap version engine selects versions of the map data with less detailand/or styling than the previous versions selected.

For example, when the user is stationary, the system generates a versionof the map data with high information density, small font sizes, lowcontrast, etc. On the other hand, when the user is travelling at highspeeds, the system generates a version of the map data with lowinformation density, large font sizes, high contrast, etc. In addition,the system can generate several intermediate versions of map datadepending on the speed of the portable device.

In other implementations, the selection of the level of detail and/orstyling can be implemented on the client (the portable device or thesoftware in the head unit).

Example Hardware and Software Components

Referring to FIG. 1, an example environment 1 in which the techniquesoutlined above can be implemented includes a portable device 10 and avehicle 12 with a head unit 14. The portable device 10 may be a smartphone or a tablet computer, for example. The portable device 10communicates with the head unit 14 of the vehicle 12 via a communicationlink 16, which may be wired (e.g., Universal Serial Bus (USB)) orwireless (e.g., Bluetooth, Wi-Fi Direct). The portable device 10 alsocan communicate with various content providers, servers, etc. via awireless communication network such as a fourth- or third-generationcellular network (4G or 3G, respectively).

The head unit 14 can include a display 18 such as a digital map. Thedisplay 18 in some implementations is a touchscreen and includes asoftware keyboard for entering text input, which may include the name oraddress of a destination, point of origin, etc. Hardware input controls20 and 22 on the head unit 14 and the steering wheel, respectively, canbe used for entering alphanumeric characters or to perform otherfunctions for requesting navigation directions. The head unit 14 alsocan include audio input and output components such as a microphone 24and speakers 26, for example. The speakers 26 can be used to play theaudio instructions sent from the portable device 10.

An example implementation of the portable device 10 is discussed nextwith reference to FIG. 2. The portable device 10 can include ashort-range communication unit 30A for communicating with the head unit14 (as shown in FIG. 1). The short-range communication unit 30 cansupport one or more communication schemes such as USB, Bluetooth, Wi-FiDirect, etc. The portable device 10 can include a display 27 such as atouchscreen, and audio input and output components such as a microphone32 and speakers 33. Additionally, the portable device 10 includes agraphics processing unit (GPU) 28, one or more processors or CPUs 34, aGPS module 36, a memory 38, and a cellular communication unit 50 totransmit and receive data via a 3G cellular network, a 4G cellularnetwork, or any other suitable network. The portable device 10 can alsoinclude sensors 48 (e.g., an accelerometer, a gyrometer, an inertialmeasurement unit (IMU), a speedometer). In one implementation, toimprove accuracy during real-time navigation, the portable device 10relies on the positioning data supplied by the head unit 14 (as shown inFIG. 1), rather than on the output of the GPS module 36. The portabledevice 10 can also rely on the speed and direction data supplied by thehead unit 14, rather than on the output of the sensors 48.

The memory 38 can store, for example, contacts 40 and other personaldata of the driver. As illustrated in FIG. 2, the memory also can storeinstructions of an operating system 42, and a speed reporting unit 46 aspart of a mapping application 44 that invokes a mapping API duringoperation. The speed reporting unit 46 can determine the speed at whichthe portable device is moving using the sensors 48, or alternatively candetermine the speed using speed data supplied by the head unit 14, andcan report an indication of the speed to a map version engine. The speedat which the portable device 10 is moving can be related to, forexample, the user's walking speed, the user's biking speed, the user'stravelling speed in a vehicle, etc.

The software components 42, 44, and 46 can include compiled instructionsand/or instructions in any suitable programming language interpretableat runtime. In any case, the software components 42, 44, and 46 executeon the one or more processors 34.

The mapping application 44 generally can be provided in differentversions for different respective operating systems. For example, themaker of the portable device 10 can provide a Software Development Kit(SDK) including the mapping application 44 for the Android™ platform,another SDK for the iOS™ platform, etc.

FIG. 3A illustrates an example communication system in which theportable device 10 can operate to obtain map data either automaticallyor in response to user requests submitted via the head unit 14 (as shownin FIG. 1) or the portable device 10. For ease of illustration, theportable device 10 is illustrated in FIG. 3A in a simplified manner,i.e., without some of the components illustrated in FIG. 2 and/ordiscussed elsewhere in this disclosure.

The portable device 10 has access to a wide area communication network52 such as the Internet via a long-range wireless communication link(e.g., a cellular link). Referring back to FIG. 2, the portable device10 can access the communication network 52 via a cellular communicationunit 50. In the example configuration of FIG. 3A, the portable device 10communicates with a navigation server 54 that provides navigation dataand a map data server 56 in which a map version engine 62 generatesseveral versions of map data (e.g., in a vector graphics format), andselects one of the versions for display on the portable device 10 or onthe head unit display 18 (as shown in FIG. 1). To generate the severalversions of map data, the map version engine 62 receives map data for aparticular geographic area from a map database 64 which stores map datafor the world.

More generally, the portable device 10 can communicate with any numberof suitable servers. For example, in another embodiment, a traffic dataserver provides traffic updates along the route, a weather data serverprovides weather data and/or alerts, etc.

FIG. 3B illustrates the map version engine 62 in more detail. Accordingto an embodiment, the map version engine 62 may include a map requestprocessor 66 communicatively coupled to a vehicle speed data processor68 and a dynamic map content controller 70. After the map requestprocessor 66 receives a request for map data to display a map for ageographic area, the map request processor 66 may execute a functioncall to the dynamic map content controller 70 to retrieve map data fromthe map database 64 for the requested geographic area. The dynamic mapcontent controller 70 may include instructions to generate the map dataas a set of map tile descriptors, such that each map tile descriptordescribes a map tile. The size of a geographic area represented by anindividual map tile depends on the zoom level with which the map tile isassociated, so that a single map tile at a lower zoom level illustratesa larger geographic area than a single map tile at a higher zoom level.The dynamic map content controller 70 may generate each map tiledescriptor according to a vector graphics format.

Based on the retrieved map data, the dynamic map controller 70 maygenerate several versions of the map for the requested geographic area.For example, in one version the dynamic map controller 70 may include alower level of detail for the geographic area than was retrieved fromthe map database 64. In another version, the dynamic map controller 70may alter the visual styles for the geographic area. More specifically,at a lower level of detail, the dynamic map controller 70 may omit anindication of a geographic feature type which is included in the mapdata at a higher level of detail. Geographic feature types may includesmall roads, major roads, highways, public transportation hubs,airports, points of interest (POIs), etc. Additionally, at a lower levelof detail, the dynamic map controller 70 may enlarge or highlight anindication of a geographic type. In some embodiments, the dynamic mapcontroller 70 may alter an indication of an individual geographicfeature such as Willis Tower, and omit the indication of the feature,enlarge or highlight it or include it when it is not included in the mapdata at a higher level of detail. The several versions are illustratedin more detail below in FIGS. 4A and 4B.

To determine which version of dynamic map content to render on the map,the map request processor 66 may execute a function call to the speeddata processor 68 to receive an indication of the speed of the portabledevice 10 from the speed reporting unit 46 in the portable device 10.The speed data processor 68 may also determine an appropriate speedinterval corresponding to the received indication of the speed.

For example, if the dynamic map controller 70 generates N versions ofthe map for the requested geographic area, the speed data processor 68may group the received speed indications into N speed intervals.Interval 1 may be from 0 to a first predetermined threshold value inmiles per hour. Interval 2 may be from a first predetermined thresholdvalue to a second predetermined threshold value, etc.

The dynamic map content controller 70 may receive the speed intervalfrom the speed data processor 68 and select a version of the mapcorresponding to the speed interval. For example, if the received speedindication is within Interval 1, the dynamic map controller 70 mayselect a first version of the map. If the received speed indication iswithin Interval 2, the dynamic map controller 70 may select a secondversion of the map and so on. In some embodiments, the dynamic mapcontroller 70 does not select a version of the map based on the speedinterval and instead selects a version of the map based on the speedalone.

In one embodiment, as the speed of the portable device increases, thedynamic map controller 70 selects versions of the map data which containless detail than the previous versions. In this way, a user of theportable device moving at a fast pace may be able to read the map moreclearly. Conversely, as the speed of the portable device decreases, thedynamic map controller 70 selects versions of the map data which containmore detail than the previous versions.

According to an example scenario, a user requests map data by opening amapping application on the portable device or by activating appropriatecontrols on the portable device to select a viewport for a geographicarea. When the user opens the mapping application, map data may berequested for a geographic area corresponding to the user's currentlocation. The portable device then requests map data from a map dataserver for the requested geographic area and also sends the map dataserver an indication of the speed of the portable device. Referring toFIG. 3A to illustrate a more specific example, a speed reporting unit 46within the mapping application 44 invokes the mapping API to provide thespeed of the portable device 10 to the map data server 56. The map dataserver 56 then sends a version of the map data in a vector graphicsformat to the mapping application 44 in the portable device 10. Theportable device 10 displays the map data on a display 27 (as shown inFIG. 2).

In some embodiments, the map data server 56 or another server provides aset of instructions that implement the mapping API to the portabledevice 10. The mapping API can be invoked by the mapping application 44,which can be a special-purpose mapping application, a web browser, orany other application.

However, this is merely one example embodiment. In another embodiment,the portable device 10 may receive map data for a geographic area fromthe map data server 56 in a vector graphics format without receiving aversion of the map data to display. The portable device 10 may thengenerate several versions of map data for the geographic area byreceiving an indication from the map data server 56 of which geographicfeature types in the geographic area are of high importance. In someversions of the map data, the portable device may only include thosegeographic feature types which are of the highest importance, while inother versions, the portable device may include all geographic featuretypes in the geographic area regardless of their importance. One versionof the map data may be selected from the several versions based on thespeed at which the portable device is moving, and once the version isselected, the version of the map data can be displayed.

FIGS. 4A and 4B illustrate example versions of map data for the samegeographic area and the same zoom level at two different levels ofdetail. In one embodiment, the portable device is stationary when themap version of FIG. 4A is displayed. By contrast, the portable device istravelling at high speeds when the map version of FIG. 4B is displayed.In particular, FIG. 4A illustrates an example version of map data for ageographic area at a high level of detail. The map displays indicationsof small roads in a small font such as Alhambra Street 78, Mallorca Way82 and Rico Way 84. The map also displays indications of POIs in alarger font such as the Palace of Fine Arts 76A, Umami Burger 86 and CowHollow Playground 88. In addition, the map displays indications of majorstreets in a larger font than the small roads such as Divisadero Street90A, Fillmore Street 92A. The map also displays indications of highwayssuch as US 101 which includes Richardson Avenue 72A, Lombard Street 74A,and Van Ness Avenue 94A, in the same font as the major streets, buthighlights the highway in a different color than the major streets.

By comparison, the example version of map data in FIG. 4B which is forthe same geographic area as in FIG. 4A does not include indications ofsmall roads such as Alhambra Street 78, Mallorca Way 82 and Rico Way 84.The map only includes some of the POIs such as the Palace of Fine Arts76B, and in a much larger font than in the version of FIG. 4A. Moreover,some POIs such as Lombard Plaza 80 which are not included in FIG. 4A areincluded in the map version of FIG. 4B. This may be because LombardPlaza 80 is identified as an important landmark for drivers even thoughit is not included in the map of FIG. 4A. Additionally, the indicationsof major streets and highways are displayed in the map of FIG. 4B, butin a much larger font and in bold, such as Richardson Avenue 72B,Lombard Street 74B, Divisadero Street 90B, Fillmore Street 92B and VanNess Avenue 94B.

However, this is merely one example of two versions of map data for aparticular geographic area. While the two versions in FIGS. 4A and 4Bdiffer because some indications of geographic features are not includedin both versions, and the font size differs between the two versionsthere are many other ways in which to generate multiple versions of mapdata for a particular geographic area. For example, the visual stylesmay differ for a geographic feature between two versions of map data forthe same geographic area. More specifically, in a first version the fonttype and font color, for example, may be different for an indication ofa small road than the font type and font color for the same indicationof the small road in a second version. This may allow for a sharpercontrast between the indication and the background in one of theversions. Additionally, more than two versions of map data may begenerated for a geographic area.

FIG. 5 illustrates a flow diagram of an example method 100 forgenerating dynamic map content at the map data server. At block 102 themap data server receives a request for map data for a particulargeographic area from a portable device. The map data server alsoreceives an indication of the speed of the portable device (block 104).In response, the map data server generates N versions of map data forthe same geographic area (block 105). Then, several intervals of speedare determined up to Interval N (block 106). For example, if N is 2 thenInterval 1 may range from 0 to a predetermined threshold value in milesper hour. Consequently, Interval 2 may include any speed at or above thepredetermined threshold value. The map data server then determines whichinterval the speed belongs to and selects a version of the map datacorresponding to the speed interval (block 108). For example, if the mapdata server determines the speed is within Interval N, then version N ofthe map data is selected (block 110D). The selected version is thentransmitted to the portable device for display (block 112).

FIG. 6 illustrates an example method 120 for displaying dynamic mapcontent at the portable device. At block 122 the portable devicetransmits a request for map data for a particular geographic area to themap data server. In addition to the request, the speed of the portabledevice is determined (block 124) and an indication of the speed istransmitted to the map data server (block 126). As a result, theportable device receives a version of map data for the particulargeographic area based on the indication of the speed (block 128), anddisplays the version of map data on the portable device (block 130).

Additional Considerations

The following additional considerations apply to the foregoingdiscussion. Throughout this specification, plural instances mayimplement components, operations, or structures described as a singleinstance. Although individual operations of one or more methods areillustrated and described as separate operations, one or more of theindividual operations may be performed concurrently, and nothingrequires that the operations be performed in the order illustrated.Structures and functionality presented as separate components in exampleconfigurations may be implemented as a combined structure or component.Similarly, structures and functionality presented as a single componentmay be implemented as separate components. These and other variations,modifications, additions, and improvements fall within the scope of thesubject matter of the present disclosure.

Additionally, certain embodiments are described herein as includinglogic or a number of components, modules, or mechanisms. Modules mayconstitute either software modules (e.g., code stored on amachine-readable medium) or hardware modules. A hardware module istangible unit capable of performing certain operations and may beconfigured or arranged in a certain manner. In example embodiments, oneor more computer systems (e.g., a standalone, client or server computersystem) or one or more hardware modules of a computer system (e.g., aprocessor or a group of processors) may be configured by software (e.g.,an application or application portion) as a hardware module thatoperates to perform certain operations as described herein.

In various embodiments, a hardware module may be implementedmechanically or electronically. For example, a hardware module maycomprise dedicated circuitry or logic that is permanently configured(e.g., as a special-purpose processor, such as a field programmable gatearray (FPGA) or an application-specific integrated circuit (ASIC)) toperform certain operations. A hardware module may also compriseprogrammable logic or circuitry (e.g., as encompassed within ageneral-purpose processor or other programmable processor) that istemporarily configured by software to perform certain operations. Itwill be appreciated that the decision to implement a hardware modulemechanically, in dedicated and permanently configured circuitry, or intemporarily configured circuitry (e.g., configured by software) may bedriven by cost and time considerations.

Accordingly, the term hardware should be understood to encompass atangible entity, be that an entity that is physically constructed,permanently configured (e.g., hardwired), or temporarily configured(e.g., programmed) to operate in a certain manner or to perform certainoperations described herein. Considering embodiments in which hardwaremodules are temporarily configured (e.g., programmed), each of thehardware modules need not be configured or instantiated at any oneinstance in time. For example, where the hardware modules comprise ageneral-purpose processor configured using software, the general-purposeprocessor may be configured as respective different hardware modules atdifferent times. Software may accordingly configure a processor, forexample, to constitute a particular hardware module at one instance oftime and to constitute a different hardware module at a differentinstance of time.

Hardware and software modules can provide information to, and receiveinformation from, other hardware and/or software modules. Accordingly,the described hardware modules may be regarded as being communicativelycoupled. Where multiple of such hardware or software modules existcontemporaneously, communications may be achieved through signaltransmission (e.g., over appropriate circuits and buses) that connectthe hardware or software modules. In embodiments in which multiplehardware modules or software are configured or instantiated at differenttimes, communications between such hardware or software modules may beachieved, for example, through the storage and retrieval of informationin memory structures to which the multiple hardware or software moduleshave access. For example, one hardware or software module may perform anoperation and store the output of that operation in a memory device towhich it is communicatively coupled. A further hardware or softwaremodule may then, at a later time, access the memory device to retrieveand process the stored output. Hardware and software modules may alsoinitiate communications with input or output devices, and can operate ona resource (e.g., a collection of information).

The various operations of example methods described herein may beperformed, at least partially, by one or more processors that aretemporarily configured (e.g., by software) or permanently configured toperform the relevant operations. Whether temporarily or permanentlyconfigured, such processors may constitute processor-implemented modulesthat operate to perform one or more operations or functions. The modulesreferred to herein may, in some example embodiments, compriseprocessor-implemented modules.

Similarly, the methods or routines described herein may be at leastpartially processor-implemented. For example, at least some of theoperations of a method may be performed by one or processors orprocessor-implemented hardware modules. The performance of certain ofthe operations may be distributed among the one or more processors, notonly residing within a single machine, but deployed across a number ofmachines. In some example embodiments, the processor or processors maybe located in a single location (e.g., within a home environment, anoffice environment or as a server farm), while in other embodiments theprocessors may be distributed across a number of locations.

The one or more processors may also operate to support performance ofthe relevant operations in a “cloud computing” environment or as anSaaS. For example, as indicated above, at least some of the operationsmay be performed by a group of computers (as examples of machinesincluding processors), these operations being accessible via a network(e.g., the Internet) and via one or more appropriate interfaces (e.g.,APIs).

The performance of certain of the operations may be distributed amongthe one or more processors, not only residing within a single machine,but deployed across a number of machines. In some example embodiments,the one or more processors or processor-implemented modules may belocated in a single geographic location (e.g., within a homeenvironment, an office environment, or a server farm). In other exampleembodiments, the one or more processors or processor-implemented modulesmay be distributed across a number of geographic locations.

Some portions of this specification are presented in terms of algorithmsor symbolic representations of operations on data stored as bits orbinary digital signals within a machine memory (e.g., a computermemory). These algorithms or symbolic representations are examples oftechniques used by those of ordinary skill in the data processing artsto convey the substance of their work to others skilled in the art. Asused herein, an “algorithm” or a “routine” is a self-consistent sequenceof operations or similar processing leading to a desired result. In thiscontext, algorithms, routines and operations involve physicalmanipulation of physical quantities. Typically, but not necessarily,such quantities may take the form of electrical, magnetic, or opticalsignals capable of being stored, accessed, transferred, combined,compared, or otherwise manipulated by a machine. It is convenient attimes, principally for reasons of common usage, to refer to such signalsusing words such as “data,” “content,” “bits,” “values,” “elements,”“symbols,” “characters,” “terms,” “numbers,” “numerals,” or the like.These words, however, are merely convenient labels and are to beassociated with appropriate physical quantities.

Unless specifically stated otherwise, discussions herein using wordssuch as “processing,” “computing,” “calculating,” “determining,”“presenting,” “displaying,” or the like may refer to actions orprocesses of a machine (e.g., a computer) that manipulates or transformsdata represented as physical (e.g., electronic, magnetic, or optical)quantities within one or more memories (e.g., volatile memory,non-volatile memory, or a combination thereof), registers, or othermachine components that receive, store, transmit, or displayinformation.

As used herein any reference to “one embodiment” or “an embodiment”means that a particular element, feature, structure, or characteristicdescribed in connection with the embodiment is included in at least oneembodiment. The appearances of the phrase “in one embodiment” in variousplaces in the specification are not necessarily all referring to thesame embodiment.

Some embodiments may be described using the expression “coupled” and“connected” along with their derivatives. For example, some embodimentsmay be described using the term “coupled” to indicate that two or moreelements are in direct physical or electrical contact. The term“coupled,” however, may also mean that two or more elements are not indirect contact with each other, but yet still co-operate or interactwith each other. The embodiments are not limited in this context.

As used herein, the terms “comprises,” “comprising,” “includes,”“including,” “has,” “having” or any other variation thereof, areintended to cover a non-exclusive inclusion. For example, a process,method, article, or apparatus that comprises a list of elements is notnecessarily limited to only those elements but may include otherelements not expressly listed or inherent to such process, method,article, or apparatus. Further, unless expressly stated to the contrary,“or” refers to an inclusive or and not to an exclusive or. For example,a condition A or B is satisfied by any one of the following: A is true(or present) and B is false (or not present), A is false (or notpresent) and B is true (or present), and both A and B are true (orpresent).

In addition, use of the “a” or “an” are employed to describe elementsand components of the embodiments herein. This is done merely forconvenience and to give a general sense of the description. Thisdescription should be read to include one or at least one and thesingular also includes the plural unless it is obvious that it is meantotherwise.

Upon reading this disclosure, those of skill in the art will appreciatestill additional alternative structural and functional designs forvarying the level of map detail based on the speed of a portable devicethrough the disclosed principles herein. Thus, while particularembodiments and applications have been illustrated and described, it isto be understood that the disclosed embodiments are not limited to theprecise construction and components disclosed herein. Variousmodifications, changes and variations, which will be apparent to thoseskilled in the art, may be made in the arrangement, operation anddetails of the method and apparatus disclosed herein without departingfrom the spirit and scope defined in the appended claims.

What is claimed is:
 1. A method for dynamically varying map content based on the speed of a portable device, the method comprising: generating, by the one or more processors, a map data request for a geographic area; receiving, from a remotely located server, map data corresponding to the geographic area; determining, by the one or more processors, a speed of the portable device; when the speed is below a predetermined threshold value: generating, by the one or more processors, a first version of the map data corresponding to the geographic area, the first version including a geographic feature; and displaying, by the one or more processors, the first version of map data corresponding to the geographic area; when the speed is equal to or above the predetermined threshold value: generating, by the one or more processors, a second version of the map data corresponding to the same geographic area, the second version omitting the geographic feature, wherein the second version is for a same zoom level as the first version and includes a different amount of detail; and displaying, by the one or more processors, the second version of the map data corresponding to the same geographic area.
 2. The method of claim 1, wherein generating the first and second versions of the map data includes: receiving, from the remotely located server, map data corresponding to the geographic area including for each of a set of geographic features within the geographic area, receiving a level of importance for displaying the geographic feature, generating, by the one or more processors, the first version of map data including a first subset of the set of geographic features having respective levels of importance ranked above a first threshold level; and generating, by the one or more processors, the second version of map data including a second subset of the set of geographic features having respective levels of importance ranked above a second threshold level, the second threshold level higher than the first threshold level.
 3. The method of claim 1, wherein generating the first and second versions of the map data includes: generating the first version of the map data, the first version including a first font size for a set of geographic features; and generating the second version of the map data, the second version including a second font size for a same set of geographic features, wherein the second font size is larger than the first font size.
 4. The method of claim 1, wherein generating the first and second versions of the map data includes: generating the first version of the map data, the first version including a set of geographic features at a first level of detail; and generating the second version of the map data, the second version including the set of geographic features at a second level of detail, the second level of detail being lower than the first level of detail.
 5. The method of claim 1, wherein generating the first and second first versions of the map data includes: generating the first version of the map data, the first version including a set geographic features generated using a first set of visual styles; and generating the second version of the map data, the second version including the set of geographic features generated using a second set of visual styles, the second set of visual styles being different than the first set of visual styles.
 6. The method of claim 1, further comprising invoking an application programming interface (API) to provide the map data request to the remotely located server.
 7. A portable device comprising: one or more sensors configured to determine a speed of the portable device; a communication interface; and processing hardware coupled to the communication interface, the processing hardware configured to: generate a map data request for a geographic area, receive, from a remotely located server, map data corresponding to the geographic area, determine a speed of the portable device, when the speed is below a predetermined threshold value, generate a first version of the map data corresponding to the geographic area, the first version including a geographic feature, and display the first version of map data corresponding to the geographic area, when the speed is equal to or above the predetermined threshold value, generate a second version of the map data corresponding to the same geographic area, the second version omitting the geographic feature, wherein the second version is for a same zoom level as the first version and includes a different amount of detail, and display the second version of the map data corresponding to the same geographic area.
 8. The portable device of claim 7, wherein to generate the first and second versions of the map data, the processing hardware is configured to: receive map data corresponding to the geographic area including for each of a set of geographic features within the geographic area, receive a level of importance for displaying the geographic feature, generate the first version of map data including a first subset of the set of geographic features having respective levels of importance ranked above a first threshold level; and generate the second version of map data including a second subset of the set of geographic features having respective levels of importance ranked above a second threshold level, the second threshold level higher than the first threshold level.
 9. The portable device of claim 7, wherein to generate the first and second versions of the map data, the processing hardware is configured to: generate the first version of the map data, the first version including a first font size for a set of geographic features; and generate the second version of the map data, the second version including a second font size for a same set of geographic features, wherein the second font size is larger than the first font size.
 10. The portable device of claim 7, wherein to generate the first and second versions of the map data, the processing hardware is configured to: generate the first version of the map data, the first version including a set of geographic features at a first level of detail; and generate the second version of the map data, the second version including the set of geographic features at a second level of detail, the second level of detail being lower than the first level of detail.
 11. The portable device of claim 7, wherein to generate the first and second versions of the map data, the processing hardware is configured to: generate the first version of the map data, the first version including a set geographic features generated using a first set of visual styles; and generate the second version of the map data, the second version including the set of geographic features generated using a second set of visual styles, the second set of visual styles being different than the first set of visual styles.
 12. The portable device of claim 7, wherein the processing hardware is further configured to invoke an application programming interface (API) to provide the map data request to the remotely located server.
 13. A non-transitory computer-readable medium storing instructions for dynamically varying map content based on the speed of a portable device that, when executed by one or more processors in the portable device, cause the one or more processors to: generate a map data request for a geographic area, receive, from a remotely located server, map data corresponding to the geographic area, determine a speed of the portable device, when the speed is below a predetermined threshold value, generate a first version of the map data corresponding to the geographic area, the first version including a geographic feature, and display the first version of map data corresponding to the geographic area, when the speed is equal to or above the predetermined threshold value, generate a second version of the map data corresponding to the same geographic area, the second version omitting the geographic feature, wherein the second version is for a same zoom level as the first version and includes a different amount of detail, and display the second version of the map data corresponding to the same geographic area.
 14. The computer-readable medium of 13, wherein to generate the first and second versions of the map data, the instructions cause the one or more processors to: receive map data corresponding to the geographic area including for each of a set of geographic features within the geographic area, receive a level of importance for displaying the geographic feature, generate the first version of map data including a first subset of the set of geographic features having respective levels of importance ranked above a first threshold level; and generate the second version of map data including a second subset of the set of geographic features having respective levels of importance ranked above a second threshold level, the second threshold level higher than the first threshold level.
 15. The computer-readable medium of 13, wherein to generate the first and second versions of the map data, the instructions cause the one or more processors to: generate the first version of the map data, the first version including a first font size for a set of geographic features; and generate the second version of the map data, the second version including a second font size for a same set of geographic features, wherein the second font size is larger than the first font size.
 16. The computer-readable medium of 13, wherein to generate the first and second versions of the map data, the instructions cause the one or more processors to: generate the first version of the map data, the first version including a set of geographic features at a first level of detail; and generate the second version of the map data, the second version including the set of geographic features at a second level of detail, the second level of detail being lower than the first level of detail.
 17. The computer-readable medium of 13, wherein to generate the first and second first versions of the map data, the instructions cause the one or more processors to: generate the first version of the map data, the first version including a set geographic features generated using a first set of visual styles; and generate the second version of the map data, the second version including the set of geographic features generated using a second set of visual styles, the second set of visual styles being different than the first set of visual styles. 